import emitter from "./eventBus";
import { urlEncode } from "./tool";
// import { urlEncode } from "./tool";

/**
 * 像主线程通讯
 * @param event 动作
 * @param param 参数
 */
export const ipcRendererSend = (event, param) => {
  const { ipcRenderer } = require("electron");
  ipcRenderer.send("fire-event", {
    event: event,
    param: param,
  });
};

/**
 * 接收主线程消息
 * @param event 事件
 * @param param 参数
 */
export const ipcRendererOn = (event, param) => {
  const { ipcRenderer } = require("electron");
  ipcRenderer.on("request-windows-param", (event, args) => {
    emitter.emit(args.emit, args.data);
  });
};
ipcRendererOn("", {});

/**
 * 打开新窗口
 * @param data.windowName 窗口名字
 * @param data.path 路径
 * @param data.width 窗口宽度
 * @param data.path 路径
 * @param data.param 参数
 * @param data.data 数据包
 */
export const createWindow = (data) => {
  // let url = process.env.NODE_ENV === 'development' ? config.baseUrl : ''; // 加载本地时用到
  ipcRendererSend("create-new-window", {
    width: data.width ? data.width : 1324,
    height: data.height ? data.height : 820,
    windowName: data.windowName,
    openUrl:
      "http://127.0.0.1:5173/#/" +
      data.path +
      urlEncode(data.param ? data.param : {}),
    params: JSON.stringify(data.param) || "",
    // openUrl: url + data.path + urlEncode(data.param?data.param:{}), // 加载本地
  });
};
